﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BaHuan.Entities;
using BaHuan.BusinessLayer;
using BaHuan.Common;
using BaHuan.DataLayer;

namespace BaHuan
{
    public partial class FrmTaiKhoanDoiTac : Form
    {
        private TaiKhoanGiaoDichDoiTacManagement taikhoandoitacMgt = new TaiKhoanGiaoDichDoiTacManagement();
        private TaiKhoanGiaoDichDoiTac taikhoandoitac = new TaiKhoanGiaoDichDoiTac();
        private NganHangManagement nganhangdoitacMgt = new NganHangManagement();
        private NganHangDoiTac nganhangdoitac;
        private bool IsEdited = false;

        public NganHangDoiTac NganHangDoiTac
        {
            set { this.nganhangdoitac=value; }
            get { return this.nganhangdoitac; }
        }
        public FrmTaiKhoanDoiTac()
        {
            InitializeComponent();
        }

        public void BindingToGrid()
        {
            ResultObj result = new ResultObj();

            result = taikhoandoitacMgt.GetAllTaiKhoanGiaoDichDoiTac();
             ResultObj result1 = new ResultObj();

            result = taikhoandoitacMgt.GetAllTaiKhoanGiaoDichDoiTac();
            List<TaiKhoanGiaoDichDoiTac> listTaiKhoanGiaoDichDoiTac = (from c in (List<TaiKhoanGiaoDichDoiTac>)result.Result
                                                           where c.IdNganHang== this.nganhangdoitac.Id
                                                           select c).ToList();
            dataGridView1.DataSource = listTaiKhoanGiaoDichDoiTac;
        }

        private void FrmTaiKhoanDoiTac_Load(object sender, EventArgs e)
        {
            this.Text = "Tài khoản ngân hàng -- " + nganhangdoitac.Ten+ " --";

            dataGridView1.AutoGenerateColumns = false;
            groupTaiKhoanNH.Enabled = false;

            btnSua.Enabled = false;
            btnLuu.Enabled = false;

            BindingToGrid();
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            clearTextbox();
            txtIdNganHang.Enabled = false;
            groupTaiKhoanNH.Enabled = true;
            btnLuu.Enabled = true;
            txtTenTaiKhoan.Select();
        }

        public void ChangeStatusTextBox(bool IsReadOnly)
        {
            if (IsReadOnly)
            {
                txtMaTaiKhoan.ReadOnly = true;
                txtTenTaiKhoan.ReadOnly = true;
            }
            else
            {
                txtTenTaiKhoan.ReadOnly = false;
                txtMaTaiKhoan.ReadOnly = false;

            }
        }

        public void clearTextbox()
        {
            txtMaTaiKhoan.Clear();
            txtTenTaiKhoan.Clear();
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            ChangeStatusTextBox(true);
            lblId.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
            txtIdNganHang.Text = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
            txtTenTaiKhoan.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
            txtMaTaiKhoan.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
            btnSua.Enabled = true;
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            btnLuu.Enabled = true;
            IsEdited = true;
            groupTaiKhoanNH.Enabled = true;
            ChangeStatusTextBox(false);
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            ResultObj result = new ResultObj();
            
            int nIdNganHang = this.nganhangdoitac.Id;
            string sIdNganHang = txtIdNganHang.Text;
            string sMaTaiKhoan = txtMaTaiKhoan.Text;
            string sTenTaiKhoan = txtTenTaiKhoan.Text;
            TaiKhoanGiaoDichDoiTac taikhoangiaodichdoitac = new TaiKhoanGiaoDichDoiTac();
            taikhoangiaodichdoitac.SoTaiKhoanGiaoDich = sMaTaiKhoan;
            taikhoangiaodichdoitac.TenGiaoDich = sTenTaiKhoan;

            taikhoangiaodichdoitac.IdNganHang = nIdNganHang;

            if (!IsEdited)
            {
                result = taikhoandoitacMgt.SaveNewTaiKhoanGiaoDichDoiTac(taikhoangiaodichdoitac);
            }
            else
            {
                taikhoandoitac.Id = Convert.ToInt32(lblId.Text);
                taikhoandoitac.IdNganHang = Convert.ToInt32(txtIdNganHang.Text);
                taikhoandoitac.TenGiaoDich = txtTenTaiKhoan.Text;
                taikhoandoitac.SoTaiKhoanGiaoDich = txtMaTaiKhoan.Text;
                result = taikhoandoitacMgt.UpdateTaiKhoanGiaoDichDoiTac(taikhoandoitac);
                IsEdited = true;
            }
            if (result.ReturnCode > 0)
                MessageBox.Show("Lưu Thành Công", "Thông báo");
            else if (result.ReturnCode == Definitions.DUPLICATED_VALUE)
                MessageBox.Show("Dữ liệu bị trùng", "Thông báo");
            else
                MessageBox.Show("Thất bại");

            BindingToGrid();
        }
    }
}
